<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Session;

use App\Models\GeoJson;
use App\Models\DangAn;
use App\Models\Users;
use App\Models\Admin;

class GuiHuaController extends Controller
{
    // 后台登录页面
    function login()
    {
        return view('admin.login');
    }

    // 后台登录验证
    function login_post(Request $request)
    {
        $username = $request->input('username');
        $password = $request->input('password');

        $admin = Admin::where('user_name', $username)->first();

        if(empty($admin))
        {
            return '账号错误';
        }

        if(Hash::check($password, $admin->password)) {
            // 密码正确
            // echo '密码正确';
            Session::put('adminname', $username); // 管理员名字
            Session::put('adminid', $admin->id); // 管理员id
            return redirect('admin/index');
        } else {
            // 密码错误
            return '密码错误';
        }
    }

    // 后台登出登录
    function logout()
    {
        Session::forget('adminname');
        Session::forget('adminid');
        return redirect('admin/login');
    }


    // 后台首页
    function index()
    {
        return view('admin.index');
    }

    // 主面板
    function main()
    {
        return view('admin.main');
    }

    // 档案列表
    function dangan_list()
    {
        $dangans = DangAn::paginate(20);
        return view('admin.dangan_list', array(
            'dangans' => $dangans
        ));
    }

    // 档案编辑
    function dangan_edit($id)
    {        
        $dangan = DangAn::find($id);
        return view("admin/dangan_edit", array(
            'dangan' => $dangan
        ));
    }

    // 保存档案编辑
    function dangan_edit_save(Request $request)
    {
        $id = $request->input('id');
        $dangan = DangAn::find($id);

        $dangan->danganhao = $request->input('danganhao'); // 档案号
        $dangan->jianshedanwei = $request->input('jianshedanwei'); // 建设单位
        $dangan->xiangmumingcheng = $request->input('xiangmumingcheng'); // 项目名称
        $dangan->xiangmuweizhi = $request->input('xiangmuweizhi'); // 工程位置
        $dangan->save();
        return '数据保存成功'; 
    }

    // 删除对应的档案
    function dangan_del($id)
    {
        $dangan = DangAn::find($id)->delete();
        return '档案删除成功';

    }

    // 图层geojson数据列表
    function geojson_list()
    {
        $page = 20;
        $a = new GeoJson();
        $geojsons = GeoJson::orderBy('add_time', 'desc')->paginate($page);
        return view('admin.geojson_list', array(
            'geojsons' => $geojsons
        ));
    }

    // 添加图层
    function geojson_add()
    {
        return view('admin.geojson_add');
    }

    // 保存添加的图层
    function geojson_add_save(Request $request)
    {
        $geojson = new GeoJson();
        $geojson->geojson_name = $request->input('geojsonname');
        $geojson->path = $request->input('path');
        $geojson->show = $request->input('show');
        $geojson->add_time = time();
        $geojson->save();
        return '图层数据添加成功';
    }

    // 编辑对应的图层
    function geojson_edit($id)
    {
        $geojson = GeoJson::find($id);
        return view('admin.geojson_edit', array(
            'geojson' => $geojson
        ));
    }

    // 保存对应的编辑图层
    function geojson_edit_save(Request $request)
    {
        $id = $request->input('id');

        $geojson = GeoJson::find($id);
        $geojson->geojson_name = $request->input('geojsonname');
        $geojson->path = $request->input('path');
        $geojson->show = $request->input('show');
        $geojson->add_time = time();
        $geojson->save();
        return '保存编辑图层成功';
    }

    // 删除对应的图层
    function geojson_del($id)
    {
        GeoJson::find($id)->delete();
        return '删除图层成功';
    }

    // 设置geojson样式
    // function geojson_style()
    // {
    //     return view('admin.geojson_style');
    // }

    // 用户帐号列表
    function users_list()
    {
        $users = Users::paginate(20);

        return view('admin.users_list', array(
            'users' => $users
        ));
    }

    // 添加用户
    function users_add()
    {
        return view('admin.users_add');
    }

    // 保存添加的用户
    function users_add_save(Request $request)
    {
        $user = new Users();
        $user->user_name = $request->input('username');
        $user->password = Hash::make($request->password);
        $user->keshi = $request->input('keshi');
        $user->zhiwei = $request->input('zhiwei');
        $user->add_time = time();
        $user->save();
        return '用户添加成功';
    }

    // 编辑对应的用户
    function users_edit($id)
    {
        $user = Users::find($id);
        return view('admin.users_edit', array(
            'user' => $user
        ));
    }

    // 保存编辑的用户
    function users_edit_save(Request $request)
    {
        $id = $request->id;

        if(trim($request->password) == "")
        {
            return "请输入用户的密码";
        }

        $user = Users::find($id);
        $user->user_name = $request->input('username');
        $user->password = Hash::make($request->password);
        $user->keshi = $request->input('keshi');
        $user->zhiwei = $request->input('zhiwei');
        $user->save();
        return '用户编辑成功';
    }

    // 删除对应的用户
    function users_del($id)
    {
        Users::find($id)->delete();
        return '用户删除成功';
    }

    // 管理员账号列表
    function admin_list()
    {
        $admins = Admin::paginate(20);
        return view('admin.admin_list', array(
            'admins' => $admins
        ));
    }

    // 管理员修改
    function admin_edit($id)
    {
        $admin = Admin::find($id);
        return view('admin.admin_edit', array(
            'admin' => $admin
        ));
    }

    // 保存管理员密码的修改
    function admin_edit_save(Request $request)
    {
        if(trim($request->password) == "")
        {
            return "请输入密码";
        }

        $id = $request->input('id');

        $admin = Admin::find($id);
        $admin->password = Hash::make($request->password);
        $admin->save();
        return '保存修改密码成功';
    }
}

